package com.itany.corejava.code05_方法;

/**
 * @author 石小俊
 * @date 2023年04月12日 13:34
 */
public class Test03_递归 {

    public static void main(String[] args) {
        int sum = sum(100);
        System.out.println(sum);
    }

    /**
     * 求1-n之间的所有整数之和
     * @param n
     * @return
     */
    public static int sum(int n) {
        // 归,指定终止条件
        if (n == 1) {
            return 1;
        }

        // 递,递归的处理过程
        // 此处需要的是1-n之间所有整数之和
        // 即:n+(n-1)+(n-2)+...+2+1
        // 当前sum=n+前n-1项之和
        // 前n-1项之和=(n-1)+前n-2项之和
        // 前n-2项之和=(n-2)+前n-3项之和
        // 以此类推
        return n + sum(n - 1);
    }
}
